using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Emgu.CV;using Emgu.CV.Structure;using Emgu.CV.CvEnum;using Emgu.Util;using System.Drawing;namespace EmguCV8{ class Program { static void Main(string[] args) { /*********图片叠加*********/ Mat img1 = new Mat("1.png");//1.jpg Mat img2 = new Mat("2.png");//2.jpg //两张图片的大小与位深度都要一样 Mat img3 = new Mat(); /*******加法********/ //方法一 //CvInvoke.Add(img1,img2,img3); //方法二 //CvInvoke.AddWeighted(img1,0.5,img2,0.5,0,img3); /*******减法********/ //CvInvoke.Subtract(img1,img2,img3);//直接相减 //CvInvoke.AbsDiff(img1,img2,img3);//相减后取绝对值叠加 /*******乘除法********/ //Mat temp = new Mat(new Size(img1.Cols, img1.Rows), DepthType.Cv8U, 3); //temp.SetTo(new MCvScalar(1, 1, 1)); //CvInvoke.Multiply(img1,temp,img3,1);//相乘 //CvInvoke.Divide(img1, temp, img3,1);//相除 /*******与运算********/ //CvInvoke.BitwiseAnd(img1,img2,img3); /*******或运算********/ //CvInvoke.BitwiseOr(img1,img2,img3); /*******取反运算********/ //CvInvoke.BitwiseNot(img1,img3); /*******取反运算********/ CvInvoke.BitwiseXor(img1, img2, img3); CvInvoke.Imshow("img",img3); CvInvoke.WaitKey(0); } }}
评论